Advertising middleware

ABSTRACT

A method and system for facilitating interaction with one or more advertisement functionalities is provided. An advertisement middleware provides advertisement functionalities for interfacing with one or more systems and components of an underlying device. The advertisement middleware includes a transport layer, an application programming interface and one or more functional modules. The functional modules may include a player module, a cache, a report module, a profile module, a loyalty module and a payment module. Each module may perform various advertising tasks for an advertisement application. In addition, use of a particular advertisement application may be tracked to provide incentives to developers to create advertisement applications.

FIELD OF ART

The invention relates generally to a method and a system forfacilitating the distribution and access of electronic information.Specifically, the invention relates to a system and method for providingadvertising information to applications.

BACKGROUND

Advertising-supported applications are increasing in popularity asadvertisers and companies strive for new ways to reach the public or aspecified segment thereof. Advertising-supported application or adwareis any software package which automatically plays, displays, ordownloads advertising material to a computer after the software isinstalled on it or while the application is being used.Advertising-supported applications are often small and unobtrusive toattract more users and appear less invasive. Companies often offergreater discounts or special offers through these applications as anincentive to use the advertising applications. Advertising-supportedapplications have been developed for computing devices such as desktopcomputers, laptops and even mobile devices, such as Personal DataAssistants (PDAs) and cellular phones. However, with the ever increasingnumber of types and brands of computing devices, developers ofadvertising-supported applications often need to program theapplications specifically for each device or architecture. Programmingapplications for each different type of device or architecture can betime consuming, complex and costly for not only the developers but forthe companies funding such ventures. As such, some advertisingapplications may only exist for certain devices or types of devices,limiting the reach of some advertisements. Further, downloadingapplications that are not specifically designed for a user's device maycause significant technical issues with the device.

For the foregoing reasons, a system and method of facilitating access toadvertising functionality is needed.

SUMMARY

Many of the aforementioned problems are solved by providing a method andsystem that provides an application programming interface forfacilitating advertisement functionality. Application developers maycreate applications using functions and hooks provided by a standardizedadvertisement middleware. The advertisement middleware provides thefunctionality to interface with hardware and software componentsassociated with a particular device. As such, application developers donot need to cater their programming to a particular device or type ofdevice. The advertisement middleware may contain various modulesincluding an advertisement player, an advertisement cache, reporting,profiling, loyalty tracker and a payment component. Each modulefacilitates certain functions associated with displaying or otherwiseproviding an advertisement to an application. For example, the playermodule may include programming that instructs a display of theunderlying device to display or play one or more advertisements. Thecache may store advertisements for faster retrieval.

In accordance with another aspect, the application middleware may trackloyalty of a user to a certain company or type of advertisement. A usermay earn loyalty credit if, for example, they view and/or click multipleadvertisements from a certain company over a specified period of time.Alternatively, loyalty credit may be earned if a user purchases aproduct that is advertised.

In accordance with still another aspect, the middleware may furtherinclude a transport layer that implements multiple transport protocols.With the transport layer, communications between an application and acontent server, for example, may be significantly streamlined. Inparticular, applications might not be required to know which servers usewhich communication protocol. As such, applications may retrieveadvertisements from a variety of servers using different communicationprotocols.

In yet another aspect, advertising middleware may provide a paymentmodel for developers. Specifically, advertising middleware may keeptrack of click-throughs or other forms of access of advertisements foreach advertising application. Based on the number of click-throughsassociated with a particular advertising application, the developer ofthe advertising application may be rewarded a specified payment. Thus,various advertising payment models may be developed based on theeffectiveness of advertising applications. The incentives may furthermotivate development of additional advertising applications.

These as well as other advantages and aspects of the invention areapparent and understood from the following detailed description of theinvention, the attached claims, and the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example and not limitedin the accompanying figures in which like reference numerals indicatesimilar elements and in which:

FIG. 1 illustrates a block diagram of a wireless communication system inwhich various embodiments may be implemented.

FIG. 2 illustrates a mobile terminal in which one or more illustrativeembodiments may be implemented.

FIG. 3 is a block diagram illustrating components of an applicationmiddleware and interactions with other components according to one ormore aspects described herein.

FIG. 4 illustrates a block functionality diagram of an advertisingmiddleware component according to one or more aspects described herein.

FIG. 5 illustrates a flow chart of a method for providing relevantadvertisements to a requesting application via a middleware componentaccording to one or more aspects described herein.

FIG. 6 is a flowchart illustrating a method for providing incentives toapplication developers according to one or more aspects describedherein.

DETAILED DESCRIPTION

In the following description of the various embodiments, reference ismade to the accompanying drawings, which form a part hereof, and inwhich is shown by way of illustration various embodiments in which theinvention may be practiced. It is to be understood that otherembodiments may be utilized and structural and functional modificationsmay be made without departing from the scope of the present invention.

Aspects of the present invention may be utilized across a broad array ofnetworks and communication protocols. FIG. 1 illustrates an example of awireless communication system 110 in which systems and methods accordingto at least some embodiments may be employed. One or morenetwork-enabled mobile devices 112, such as a personal digital assistant(PDA), cellular telephone, mobile terminal, personal video recorder,portable television, personal computer, digital camera, digitalcamcorder, portable audio device, portable radio, or combinationsthereof, are in communication with a service source 122 through abroadcast network 114 (which may include the Internet or similarnetwork) and/or a cellular network 116. The mobile terminal/device 112may include a digital broadband broadcast receiver device. The servicesource 122 may be connected to several service providers such asadvertisement source 125 that may provide their actual program contentor information or description of their services and programs to theservice source 122 that further provides the content or information tothe mobile device 112. The several service providers includingadvertisement source 125 may include but are not limited to one or moretelevision and/or digital television service providers, AM/FM radioservice providers, advertisement servers and/or providers, SMS/MMS pushservice providers, Internet content or access providers.

In one or more arrangements, broadcast network 114 may broadcastadvertisements from one or more service sources such as service source122. Service source 122 may obtain or receive advertisements from anadvertisement server or provider. The advertisements may then bereceived by mobile terminal 112 through the broadcast network 114 andstored in a database for display to a user of terminal 112. In oneexample, a broadcast service source 122 may obtain revenue fromdisplaying advertisements in their broadcasts. As such, the broadcastservice source 122 may periodically retrieve advertisements from anadvertisement source 125 or database and broadcast the advertisement toa user population subscribed to the broadcast service. One method ofbroadcasting data is using IP datacasting (IPDC). IPDC combines digitalbroadcasting and Internet Protocol. As such, a variety of informationand services may be transmitted using such a network and protocol.

The mobile device 112 may also send and receive messages to and from theservice source 122 through the cellular network 116. The cellularnetwork 116 may include a wireless network and a base transceiverstation transmitter 120. The cellular network may include asecond/third-generation (2G/3G) cellular data communications network, aGlobal System for Mobile communications network (GSM), a UniversalMobile Telecommunications System (UMTS) and/or other wirelesscommunication network such as a WLAN network. In one or more aspects,communications through the cellular network 116 may allow a servicesource 122 to distribute advertisements on an individual basis. That is,rather than broadcasting advertisements to an entire subscriberpopulation, the service source 122 may obtain and distributeadvertisements from an advertising source 125 based on user interests,usage statistics, a user's most frequent time of use and the like.Alternatively or additionally, mobile device 112 may access either thebroadcast network 114 or cellular network 116 to retrieve advertisementsor other forms of content from a server or content provider 122. In oneexample, device 112 may request additional advertisements from anadvertisement server 125 in response to determining that noadvertisements are stored in device 112.

In accordance with one aspect of the invention, mobile device 112 mayinclude a wireless interface configured to send and/or receive digitalwireless communications within cellular network 116 using basetransceiver station transmitter 120. The information received by mobiledevice 112 through the cellular network 116 or broadcast network 114 viaa cellular network tower 118 may include user input or selection (forexample, in an interactive transmission), applications, services,electronic images, content requests, audio clips, video clips, and/orWTAI (Wireless Telephony Application Interface) messages. As part ofcellular network 116, one or more base stations (not shown) may supportdigital communications with receiver device 112 while the receiverdevice is located within the administrative domain of cellular network116.

As shown in FIG. 2, mobile device 112 may include processor 128connected to user interface 130, memory 134 and/or other storage, anddisplay 136. Mobile device 112 may also include battery 150, speaker 152and antennas 154. User interface 130 may further include a keypad, touchscreen, voice interface, four arrow keys, joy-stick, stylus, data glove,mouse, roller ball, touch screen, or the like. In addition, userinterface 130 may include the entirety of or portion of display 136.

Computer executable instructions and data used by processor 128 andother components within mobile device 112 may be stored in a computerreadable memory 134. The memory may be implemented with any combinationof read only memory modules or random access memory modules, optionallyincluding both volatile and nonvolatile memory. Software 140 may bestored within memory 134 and/or storage to provide instructions toprocessor 128 for enabling mobile device 112 to perform variousfunctions. Alternatively, some or all of the computer executableinstructions may be embodied in hardware or firmware (not shown).

Mobile device 112 may be configured to receive, decode and processdigital broadband broadcast transmissions that are based, for example,on the Digital Video Broadcast (DVB) standard, such as DVB-H, DVB-T orDVB-MHP, through a specific DVB receiver 141. The mobile device may alsobe provided with other types of receivers for digital broadbandbroadcast transmissions. Additionally, receiver device 112 may also beconfigured to receive, decode and process transmissions through FM/AMRadio receiver 142, WLAN transceiver 143, and telecommunicationstransceiver 144. In one aspect of the invention, mobile device 112 mayreceive radio data stream (RDS) messages.

In an example of the DVB standard, one DVB 10 Mbit/s transmission mayhave 200, 50 kbit/s audio program channels or 50, 200 kbit/s video (TV)program channels. The mobile device 112 may be configured to receive,decode, and process transmission based on the Digital VideoBroadcast-Handheld (DVB-H) standard or other DVB standards, such asDVB-Multimedia Home Platform, DVB-Satellite (DVB-S), DVBTerrestrial(DVB-T) or DVB-Cable (DVB-C). Similarly, other digital transmissionformats may alternatively be used to deliver content and information ofavailability of supplemental services, such as ATSC (Advanced TelevisionSystems Committee), NTSC (National Television System Committee), ISDB-T(Integrated Services Digital Broadcasting-Terrestrial), DAB (DigitalAudio Broadcasting), DMB (Digital Multimedia Broadcasting), FLO (ForwardLink Only) or DIRECTV. Additionally, the digital transmission may betime sliced, such as in DVB-H technology. Time-slicing may reduce theaverage power consumption of a mobile terminal and may enable smooth andseamless handover. Time-slicing consists of sending data in bursts usinga higher instantaneous bit rate as compared to the bit rate required ifthe data were transmitted using a traditional streaming mechanism. Inthis case, the mobile device 112 may have one or more buffer memoriesfor storing the decoded time sliced transmission before presentation.The power of receiver between bursts may be turned off to reduce powerconsumption.

In one or more configurations, a user of a mobile device may agree toreceive advertisements on her mobile device. For example, a user maydownload a widget application that provides deals or discounts forallowing advertisements from organizations or companies to be displayedon the user's device. To facilitate the display of advertisements inwidget applications and other applications, the user's mobile terminalmay include an advertisement middleware that provides a widget orapplication API that allows an application to call standardizedfunctions for retrieving advertisements or performing other advertisingtasks. A widget, as used herein, relates to a user interface elementand/or application that provides information such as advertising orweather information to a user based on a variety of factors such as userpreferences. Examples of advertising widgets and other advertisingapplications are described in a U.S. patent application Ser. No.11/453,146, entitled “AUCTIONS FOR WIDGET SPACE,” filed Jun. 15, 2006,the content of which is hereby incorporated by reference in itsentirety.

Middleware, in general, refers to an entity that facilitates interactionbetween software and/or hardware components. For example, a middlewaremay perform processes such as mediation between an application and anetwork to manage the interaction between disparate applications acrossheterogeneous platforms. The advertisement middleware described hereinprovides a variety of functionalities associated with the display andretrieval of advertisements. In particular, the middleware relieves thewidget or other application from having to implement the middlewarefunctionalities. Instead, the application may call various functions ofthe middleware to accomplish various advertisement tasks or processes.Advertisement middleware may be stored in a computer readable medium 134in a user's mobile terminal 112 along one or more advertisementapplications that may interface with the middleware. The advertisementapplication or widget may display advertisements or other information ondisplay 136. Advertisement middleware may also include components forinterfacing with one or more hardware components such as WLANtransceiver 143, telecom transceiver 144 and display 136 to perform oneor more tasks.

FIG. 3 is a block diagram illustrating a middleware component 301. Amongother capabilities, middleware component 301 may coordinatecommunication, data, messages, and user interaction between one or morecontent servers 315 a and 315 b and one or more applications 305 a, 305b and 305 c executing on the mobile terminal device. Middlewarecomponent 301 may expose one or more functional APIs, such as API 307,to provide an application 305 with a standardized interface forperforming advertisement related functions. For example, the functionalAPI 307 may publish a function called GET ADVERTISEMENT that directs themiddleware component 301 to obtain one or more advertisements based onone or more specified parameters. Other functions may also be publishedthrough functional API 307 including DISPLAY ADVERTISEMENT that directsmiddleware 301 to display an advertisement on a display of a mobileterminal device and ADD CREDIT which instructs middleware 301 to addcredit or loyalty points to a user's account. Credit and/or loyaltypoints may be added based on factors such as a number of advertisementsviewed on the device.

The middleware component 301 may also interact with a server 315 a or315 b through a transport layer 317 which may include a plurality oftransport mechanisms and/or protocols including HTTP, FTP, SMS,Bluetooth, WLAN, Radio Frequency Identification (RFID), RSS, or 2DBarcode. For example, middleware component 301 may determine that thereare no advertisements available in the device's storage. As such,middleware 301 may connect to an advertisement server 315 a to requestadditional advertisements. The request may be issued through thetransport layer 317 which may provide multiple protocols for making sucha request. In another example, middleware 301 may periodically update anadvertisement server 315 a with loyalty information associated with aparticular user or device through the transport layer 317. In general,transport layer 317 may facilitate any communications with externaldevices or entities.

Alternatively or additionally, middleware component 301 may include orinteract with a hardware API to instruct various hardware components toperform certain functions or tasks. In one or more instances, anapplication may call a DISPLAY ADVERTISEMENT function. In response,middleware 301 may interface with a display component through thehardware API to display a specified advertisement. The processes andinterfaces shown in FIG. 3 are for illustrative purposes, and those ofskill in the art will appreciate that middleware component 301 maysupport additional processes, components and interfaces in addition tothose shown.

Further, middleware component 301 exposes one or more APIs toapplication programs 305 a, 305 b and 305 c executing on the mobileterminal device. Application programs 305 a, 305 b and 305 c may beimplemented on a variety of platforms including Symbian and J2ME. Eachapplication program 305 a, 305 b and 305 c may contain predefinedprogramming to facilitate interfacing with the middleware component 301using the exposed APIs. The functional APIs associated with middleware301 may be published to the public or a group of developers to allowthem to implement the proper programming in applications 305 a, 305 band 305 c to utilize the functionalities of middleware 301. Thus,applications 305 a, 305 b and 305 c might not need to implement thefunctionalities already provided by the middleware component 301. Forexample, applications might not need to include programming to performfunctions such as storing user profiles and interfacing with softwareand hardware subsystems. Advantages of using the functionalities ofcomponent 301 may include a reduction in load on the overall operatingsystem of the underlying device.

FIG. 4 is a block diagram illustrating architecture of a middlewarecomponent, such as component 301 of FIG. 3. Middleware component mayinclude a player module 411, a cache module 412, a report module 413, aprofile module 414, a loyalty module 415, and/or a payment module 416.In addition, middleware component 301 may interface with a contentserver 315 (not shown), e.g., advertising server, via transportmechanism 317, as well as with the user of the mobile terminal devicevia one or more end-user interfaces such as keys, buttons, dials,display screens, speakers, etc., of the mobile terminal device.

As described above, functional API 307 may interface with one or moreapplication level programs (not shown). This interaction may becontrolled and/or directed by a user of the mobile terminal device onwhich the one or more applications are executing via one or moreend-user interfaces. Function calls and requests by the applicationsthrough functional API 307 may be routed directly to the module of themiddleware component to which it corresponds, as further describedbelow.

Alternatively or additionally, the middleware component 301 may includea manager module (not shown) that initially receives the request orinput from the application via the functional API 307 and directs therequest to the applicable module of the middleware component 301. Whilespecific APIs are called out and described herein, those of skill in theart will appreciate that additional or different APIs may be used.

Player module 411, in an illustrative embodiment, is responsible fordisplaying or otherwise providing one or more advertisements to theapplication. Player module 411 may receive a request from an applicationvia the functional API 307 to display or provide advertisements. Inresponse, player module 411 may extract from the request one or moreparameters, such as the type of advertisement to be provided, e.g., fullscreen, banner, ticker, or widget; duration for displaying or playingadvertisement; position and/or size of advertisement to be displayed;and interval for refreshing the advertisement or for providing newadvertisements. Some parameters may be optional and may be used withpre-defined default values if left unspecified.

Player module 411 may subsequently select one or more advertisements inaccordance with the parameters from a cache module 412 that storesadvertisements. Cache module 412 may be implemented as a database withretrieval functions to facilitate the selection of advertisements basedupon the parameters. If cache module 412 is empty or does not containany advertisements fitting the parameters requested by the application,player module 411 or cache module 412 may retrieve one or moreadvertisements from a server (e.g., server 315 a of FIG. 3) via atransport mechanism 317 in accordance with the parameters specified inthe initial request. Additional parameters may be extracted from thedevice, such as usage and user profile information, and may be providedto the server to facilitate delivery of optimized content.

For example, parameters relating to gender may be extracted from userprofile information to determine the advertisement preferences basedupon the gender of the user. These parameters may be used to retrieve,or place a higher priority for retrieving, advertisements targeted to amale audience, and/or not retrieve, or place a lower priority inretrieving, advertisements targeted exclusively to a female audience.Additionally, or alternatively, the cache module 412 may periodicallyretrieve new advertisements from the server based on previously usedparameters.

For example, the usage information transmitted to the server may revealthat a significant portion of advertisements being displayed in anapplication has been regarding sports equipment in a banner-typeadvertisement. The cache module 412 may periodically, e.g., every fivehours, retrieve new advertisements from the server regarding sportsequipment in a banner-type format. Alternatively, the cache module 412may opt to retrieve non-sports equipment related advertisements toprovide more variety to the cache pool. By pre-fetching content, futureretrieval of advertisements from the cache by the player module 411 maybe greatly expedited.

Additionally, or alternatively, the cache module 412 may periodicallyretrieve content from nearby servers based upon changes in the mobiledevice's location, such as automatically retrieving new advertisementsfrom a nearest content server with respect to the mobile device. Forexample, a user at a supermarket may receive advertisements on theweekly specials at the supermarket on her mobile device that wereretrieved by the cache module 412 via a transport mechanism, e.g., WLAN,from an advertising server located in the store. Retrievedadvertisements may be stored in cache module 412 for later use by playermodule 411.

Once player module 411 has received one or more advertisements inaccordance with the parameters from cache module 412 or an externaladvertisement server, player module 411 may display or play theadvertisement in the application or otherwise provide the one or moreadvertisements to the requesting application. In one or morearrangements, the advertisement may include an animation or video clip.In such arrangements, the advertisement may be played using varioushardware devices including a display and speakers of the device.

Report module 413 monitors and tracks usage of the middleware component301 and the middleware modules. Report module 413 may receive or collectusage information from other middleware modules 411, 412, 414, 415and/or 416. The usage information may include, for example, whichadvertisements have been provided by player module 411 to the requestingapplication or user. The information may be gathered at any desiredtime, e.g., periodically, whenever content is requested, etc., andstored in cache module 412 or another database. Middleware component301, e.g., via report module 413, may expose one or more APIs to allowan application to access and/or retrieve usage information from thedatabase or allow the application to request authorization, initiationand/or stoppage of the usage monitoring. Additionally, informationcollected by report module 413 may further be transmitted to one or moreadvertisement servers. With the collected information, the servers may,for example, analyze statistics of service usage.

Profile module 414 stores and manages user profile information includinguser behavior and interactions and user preferences. Some or all of theinformation may be gathered from another middleware module, e.g., reportmodule 413. In one example, middleware component 301, via profile module414, may expose one or more APIs to allow an application and user toupdate the user or device's profile information, including preferences.Profile information may also be transmitted to a server, e.g., viaplayer module 411, to facilitate retrieval of targeted advertisementsfrom the server. For example, profile module 414 may collect dataregarding the frequency with which the user or device requests and viewsadvertisements. Profile module 414 may further collect informationrelated to what types of advertisements are typically viewed and/orrequested. Using such data, relevant advertisements may be retrievedfrom an advertisement server.

Loyalty module 415 stores and manages user loyalty information tofacilitate providing the user with rewards or incentives for certainuser interactions with advertisements. Some or all of the informationused and/or stored by loyalty module 415 may be gathered from anothermiddleware module (e.g., report module 413) or from the advertisements(e.g., rewards specified in metadata associated with theadvertisements). Middleware component 301, e.g., via loyalty module 415,may expose one or more APIs to allow applications and/or the user toaccess the loyalty information. Additionally, loyalty information may betransmitted to the server 315 which may subsequently relay theinformation to the appropriate advertisers. For example, userinteractions such as following a link in an advertisement or making apurchase with an advertiser, may entitle the user to rewards includingreceiving extra mobile minutes, discounts from the advertiser, orapplication-specific rewards (e.g., extra lives in a video gameapplication).

Payment module 416 stores and manages payment information. For example,payment module 416 may store and manage payment data to facilitatepayment of fees to application developers for advertisements provided tothe user via one or more applications a developer created. For example,developers may be paid based on the number of views or click-throughsthe advertisements generated, and/or commission based on salestransactions. Some or all of the information may be gathered fromanother middleware module, e.g., report module 413. The information mayfurther be transmitted to an advertising server 315 to facilitatepayment processing.

Each block within component 301 may be implemented in software viacomputer executable instructions stored in a memory, or via hardware,e.g., as one or more ASICs, or the like. The functional modulesillustrated in FIG. 4 are but one possible embodiment, as functionalitymay be combined across modules, or split to create even more functionalmodules. Some modules may be optional, and additional modules may beadded. The scope of the invention is not limited to the illustrativeembodiment of FIG. 4.

FIG. 5 is a flowchart illustrating a method for providing relevantadvertisements to a requesting application via a middleware componentsuch as component 301 in FIGS. 3 and 4. In step 500, a registrationrequest may be received from an application. For example, anapplication, upon loading or boot-up, may call an NAD REGISTER( )function to register with a known middleware component. An applicationmay be aware of the middleware component based on, for example, systemwide broadcasts or advertisements from the middleware component. In step505, a determination is made as to whether the middleware component hasbeen loaded. If the middleware component has not been loaded, then instep 510, the middleware component is initialized and loaded. In one ormore arrangements, the middleware component may be configured toautomatically load upon startup of the mobile terminal device oralternatively or additionally, may be built-in to the operating system.Thus, if the middleware component is already loaded when theregistration request is made by the application, the middlewarecomponent may register the application in response in step 515.

For example, the requesting second application may be assigned a uniqueidentifier to differentiate the requesting second application from otherapplications, e.g., the aforementioned first application. In step 520,the middleware component may receive a request for one or moreadvertisements, including values associated with a list of parameterssuch as type, duration, position, and interval from the application viaa functional API. This request may be sent directly to a player moduleor alternatively, to a manager module which directs the request to theplayer module. In step 525, the middleware component or a module thereofsearches a cache for one or more advertisements in accordance with theparameters. In step 530, a determination is made as to whether the cachecontains a relevant advertisement matching the specified parameters.

If the cache is empty or no advertisements are identified as fitting theparameters from the cache in step 530, the middleware component maythen, in step 540, transmit a request for one or more advertisements toan advertising server via a transport mechanism such as HTTP. In step545, one or more advertisements are received from the advertising serverthrough the transport layer and stored in the cache. In step 550, theselected advertisements are displayed to the user according to, forexample, the parameters received in step 520. Alternatively, if arelevant advertisement is available in the cache from step 530, therelevant advertisement is retrieved from the cache in step 535 anddisplayed in step 550. In step 555, the middleware component may receivea deregistration message from the second application via an NADDEREGISTER( ) function if, for example, the application is being closedby a user. In one or more arrangements, if the middleware component isnot being used by other application, the middleware component may beunloaded from memory. Where other application(s) are still registered orcommunicating with the middleware component, the middleware might not beunloaded. Alternatively, the middleware component may remain resident inmemory until the mobile device is powered off.

FIG. 6 is a flowchart illustrating a business model for generatingrevenue for developers of mobile applications that displayadvertisements via the middleware component. In step 600, a developerimplements calling functionality into her application enabling theapplication to interface with a middleware component through astandardized functional API. Developers may be able to access themiddleware component if, for example, the middleware component andfunctional API are publicly available and downloadable free of charge.In step 601, a developer registers the application with an advertisingserver to set up payment information. For example, the developer maysign up an account on the server under a payment schedule that payscommission based upon total views or click-throughs of advertisementsdisplayed in its application. In step 602, the application communicateswith the server via the middleware component and sends user reportinformation such as user views and click-throughs of advertisements tothe server. In step 603, a credit may be applied to the developer'saccount with any commission generated from the displayed advertisements.In step 604, the developer is paid the amount owed in his account. Aminimum amount owed may be required before payment is made. In one ormore arrangements, a level of payment may also be associated with thefunctionalities or complexities of the developer's applications. Forexample, an application with more functions such as music and games maybe provided a greater payout than an application that is dedicated todisplaying advertisements.

The methods and features recited herein may further be implementedthrough any number of computer readable mediums that are able to storecomputer readable instructions. Examples of computer readable mediumsthat may be used include RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, DVD or other optical disk storage, magneticcassettes, magnetic tape, magnetic storage and the like.

The following example provides an illustrative implementation of certainaspects of the present invention. A developer has invested a great dealof time, resources, and money into producing a massive multi-player gamethat runs on mobile devices and wishes to generate revenue from thegame. The developer could charge a price for purchasing the game or aperiodic subscription fee to play the game, but such business modelswould likely not reach as wide a user-base as a game distributed withoutcharge. Thus, the developer may instead, or additionally as an option,offer a version of the game free of charge, but one that is supportedthrough advertisements displayed in the game. The developer couldimplement such functionality directly into the game, but doing so wouldbe costly and complex, as the developer will have to account for varioussoftware and hardware platforms, advertisement formats, serverspecifications, etc. Instead, the developer may simply implement afunction in the game, e.g., GET ADVERTISEMENT( ), to call theadvertisement middleware to display advertisements according to anydesired parameters.

For example, the game may request that ticker-type (TYPE) advertisementsbe displayed at the bottom of the game screen (POSITION), to minimizeobstruction of the game, while the game is being played (DURATION), witha one-minute refreshment rate for new advertisements (INTERVAL). Such anexample shows four parameters for displaying the advertisement. Theplayer module of the middleware, upon receiving the request from thegame, selects from the cache module advertisements fitting theparameters, i.e., ticker-type. If the cache is empty, or no content isselected as fitting the parameters provided, the cache module downloadsnew advertisements, e.g., via HTTP, from an advertising server.Additional information from other middleware modules is transmitted tothe server to ensure that advertisements downloaded are targeted to theuser, such as user profile information gathered from user registrationin the game. Once advertisements are selected by the player module,either from the cache or from the server, they are displayed to the userin the game according to the other parameters requested, e.g., bottom ofscreen. As such, the developer registers this application with theadvertising server and sets up an account where future earnings may becredited.

Assume, for example, that an advertisement for a MP3 player is displayedin the game. The user of the mobile device decides to follow the link inthe advertisement, and liking what she sees, purchases the MP3 player.The user profile module tracks the interaction, e.g. via the reportmodule, and updates the user profile information to reflect thepurchase/click-through. This information may be transmitted to anadvertising server by the middleware to retrieve future advertisementsrelating to this purchase/click-through, such as accessories for MP3players, other portable players, etc. The loyalty module tracks thepurchase and rewards the player in the game, such as giving the playersome game-currency, with the amount dependent upon the purchase price,e.g., higher purchases are rewarded by higher awards, or the number ofclick-throughs or ad-views. Additionally, the user may be given futurediscounts on products purchased from the same advertiser. Finally, thepayment module tracks the view, click-through, and purchase generated bythis advertisement and transmits the information to the advertisingserver, which credits the developer's account for any revenue generatedfrom the view and click-through, and commission fee associated with thepurchase.

Such an implementation benefits all parties involved. Users can play thegame for free and receive bonuses, rewards, or discounts for interactingwith advertisers. A developer can capitalize on revenue opportunitiesthat otherwise would not be possible through traditional businessavenues or are practically unfeasible given the complexity ofimplementing advertising functionality directly into its game. Finally,advertisers can reach a vast consumer-base for relatively little costand gains wide exposure from users interacting with the advertisements.

The present invention has been described in terms of preferred andexemplary embodiments thereof. Numerous other embodiments, modificationsand variations within the scope and spirit of the appended claims willoccur to persons of ordinary skill in the art from a review of thisdisclosure.

What is claimed:
 1. A method, comprising: receiving, at a middlewarecomponent, an advertisement request from an application, theadvertisement request including one or more parameters wherein themiddleware component and the application are included in a mobilecommunication device; selecting, at the middleware component, one ormore advertisements from a database, wherein the selection is based onthe one or more parameters; and providing the selected one or moreadvertisements to the application in accordance with the one or moreparameters.